home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Event;
- import java.io.DataInputStream;
-
- public class bob51 extends bob {
- private int nrOfCurves;
- private double totalLength;
- private int[][] controlPointsX;
- private int[][] controlPointsY;
- private int lastX;
- private int lastY;
- private int newX;
- private int newY;
- private double resultX;
- private double resultY;
- private double[] pointsX;
- private double[] pointsY;
- private double[] lengths;
- private int nrOfPoints;
-
- private void calcLocation(double var1) {
- double var3 = var1 * this.totalLength;
- double var5 = (double)0.0F;
-
- int var7;
- for(var7 = 0; var5 + this.lengths[var7] < var3; ++var7) {
- var5 += this.lengths[var7];
- }
-
- double var8 = var3 - var5;
- double var10 = var8 / this.lengths[var7];
- double var12 = this.pointsX[var7];
- double var14 = this.pointsY[var7];
- double var16 = this.pointsX[var7 + 1];
- double var18 = this.pointsY[var7 + 1];
- this.lastX = this.newX;
- this.lastY = this.newY;
- this.newX = (int)(var12 + (var16 - var12) * var10);
- this.newY = (int)(var14 + (var18 - var14) * var10);
- }
-
- // $FF: renamed from: rd (java.io.DataInputStream) void
- public void method_0(DataInputStream var1) {
- try {
- this.nrOfCurves = var1.readInt();
- this.controlPointsX = new int[this.nrOfCurves][4];
- this.controlPointsY = new int[this.nrOfCurves][4];
-
- for(int var2 = 0; var2 < this.nrOfCurves; ++var2) {
- this.controlPointsX[var2][0] = var2 == 0 ? var1.readInt() : this.controlPointsX[var2 - 1][3];
- this.controlPointsY[var2][0] = var2 == 0 ? var1.readInt() : this.controlPointsY[var2 - 1][3];
- this.controlPointsX[var2][1] = var1.readInt();
- this.controlPointsY[var2][1] = var1.readInt();
- this.controlPointsX[var2][2] = var1.readInt();
- this.controlPointsY[var2][2] = var1.readInt();
- this.controlPointsX[var2][3] = var1.readInt();
- this.controlPointsY[var2][3] = var1.readInt();
- }
-
- this.newX = this.controlPointsX[0][1];
- this.newY = this.controlPointsY[0][1];
- } catch (Exception var3) {
- }
-
- }
-
- private void expandArray(double[] var1) {
- double[] var2 = new double[var1.length * 2];
- System.arraycopy(var1, 0, var2, 0, var1.length);
- }
-
- private void addPoint(double var1, double var3) {
- if (this.pointsX.length < this.nrOfPoints) {
- this.expandArray(this.pointsX);
- this.expandArray(this.pointsY);
- this.expandArray(this.lengths);
- }
-
- this.pointsX[this.nrOfPoints] = var1;
- this.pointsY[this.nrOfPoints] = var3;
- if (this.nrOfPoints > 0) {
- double var5 = var1 - this.pointsX[this.nrOfPoints - 1];
- double var7 = var3 - this.pointsY[this.nrOfPoints - 1];
- this.totalLength += this.lengths[this.nrOfPoints - 1] = Math.sqrt(var5 * var5 + var7 * var7);
- }
-
- ++this.nrOfPoints;
- }
-
- // $FF: renamed from: i () void
- public void method_1() {
- this.pointsX = new double[1000];
- this.pointsY = new double[1000];
- this.lengths = new double[1000];
- this.nrOfPoints = 0;
-
- for(int var1 = 0; var1 < this.nrOfCurves; ++var1) {
- double var2 = (double)0.0F;
- this.calcPosition(var1, (double)0.0F);
-
- for(int var12 = 1; var12 < 5; ++var12) {
- double var8 = this.resultX;
- double var10 = this.resultY;
- this.calcPosition(var1, (double)var12 / (double)4.0F);
- double var4 = var8 - this.resultX;
- double var6 = var10 - this.resultY;
- var2 += Math.sqrt(var4 * var4 + var6 * var6);
- }
-
- int var13 = (int)(var2 / (double)10) + 2;
-
- for(int var14 = 0; var14 < var13; ++var14) {
- this.calcPosition(var1, (double)var14 / (double)var13);
- this.addPoint(this.resultX, this.resultY);
- }
- }
-
- this.addPoint((double)this.controlPointsX[this.nrOfCurves - 1][3], (double)this.controlPointsY[this.nrOfCurves - 1][3]);
- }
-
- private void calcPosition(int var1, double var2) {
- double var4 = (double)this.controlPointsX[var1][0];
- double var6 = (double)this.controlPointsX[var1][1];
- double var8 = (double)this.controlPointsX[var1][2];
- double var10 = (double)this.controlPointsX[var1][3];
- double var12 = (double)this.controlPointsY[var1][0];
- double var14 = (double)this.controlPointsY[var1][1];
- double var16 = (double)this.controlPointsY[var1][2];
- double var18 = (double)this.controlPointsY[var1][3];
- double var20 = (double)1 - var2;
- this.resultX = var4 * var20 * var20 * var20 + var6 * (double)3 * var2 * var20 * var20 + var8 * (double)3 * var2 * var2 * var20 + var10 * var2 * var2 * var2;
- this.resultY = var12 * var20 * var20 * var20 + var14 * (double)3 * var2 * var20 * var20 + var16 * (double)3 * var2 * var2 * var20 + var18 * var2 * var2 * var2;
- }
-
- // $FF: renamed from: he (java.awt.Event) void
- public void method_2(Event var1) {
- if (var1.id == 1) {
- if (this.nrOfCurves > 0) {
- this.calcLocation(((bob10)var1.arg).value / (double)100.0F);
- }
-
- ((bob)this).ce(new bob13((double)this.newX, (double)this.newY), 1);
- ((bob)this).ce(new bob13((double)(this.newX - this.lastX), (double)(this.newY - this.lastY)), 2);
- }
-
- }
- }
-